This application relates generally to the field of data storage devices and more particularly to a tool for analyzing the operation of the error recovery procedures programmed into data storage devices.
One function of data storage devices is the reliable storage and retrieval of information. Using one common implementation of such storage devices as an example, data is stored in a disc drive on one or more discs coated with a magnetizable medium. Data is written to the discs by an array of transducers, typically referred to as read/write heads, mounted to a radial actuator for movement of the heads relative to the discs. The information is stored on a plurality of concentric circular tracks on the discs until such time that the data is read from the discs by the read/write heads. Each of the concentric tracks is typically divided into a plurality of separately addressable data sectors. The heads are used to transfer data between a desired track and an external environment. During a write operation, data is written onto the disc track and during a read operation the head senses the data previously written on the disc track and transfers the information to the external environment. Critical to both of these operations is the accurate locating of the head over the center of the desired track.
Typically, the heads are positioned with respect to the disc surfaces by an actuator voice coil motor. The voice coil motor is responsible for pivoting the actuator body about a pivot shaft, thus moving the heads across the disc surfaces. The actuator thus allows the heads to move back and forth in an accurate fashion between an inner radius and an outer radius of the discs. The actuator arm is driven by a control signal fed to the voice coil motor at the rear end of the actuator arm. A servo control system is used to sense the position of the actuator and control the movement of the head above the disc using servo signals read from the servo segments on the disc surface in the disc drive. The servo system relies on servo information stored on the disc. The signals from this information generally indicate the present position of the head with respect to the disc, i.e., the current track position. The servo system uses the sensed information to maintain head position or determine how to optimally move the head to a new position centered above a desired track. The servo system then delivers a control signal to the voice control motor to rotate the actuator to position the head over a desired new track or maintain the position over the desired current track.
Servo information is typically stored in a disc drive in one of two ways: sectored servo and dedicated servo. In a dedicated servo system, the servo information is stored on a separate dedicated disc surface which contains no user data. In this system, servo information is constantly available to the servo control system. In a sectored servo system, servo information is interspersed with user data stored on the disc surface. The servo information is stored in servo segments, also referred to as servo wedges, on each track of the disc surface. These segments are interspersed around the recorded track between stored user data on the track. The number of servo wedges in a recorded track varies depending on the disc architecture. The leading edge of each servo wedge on a particular track is detectable by monitoring drive signal servo gate pulses. As the disc rotates beneath the head, the head periodically samples the servo sectors to obtain the servo information for the servo system. In this system, servo information is constantly available to the servo control system.
Unpredictable errors may periodically occur in the retrieval of data from the magnetized discs. Therefore, storage device control systems are designed to detect errors and subsequently deliver the correct data if possible. Since errors occur randomly, error recovery procedure code designers must anticipate potential causes for error and formulate methods for dealing with them. In particular, a large portion of the storage device firmware is specifically devoted to analysis of errors and error recovery.
Conventional methods of testing the adequacy and function of error recovery procedures are primitive. The process requires operational testing of a large number of storage devices for extended periods of time in hopes of discovering a significant portion of error conditions. These approximate attempts to simulate single error conditions have proven time consuming and inefficient.
There are also different procedures for testing data storage devices in order to locate where an error condition may occur. In short, these procedures do not test the reaction of the firmware of the storage device, but instead only test whether or not the device has accumulated any errors, either during the manufacturing process or after considerable use. One such procedure, as detailed in U.S. Pat. No. 4,578,721, applied an inherent window margin to each track of the disc. The stored data was positioned under the inherent window 5% from the center of the cell, also 5% from its failure point. Hence, any noise or error would cause the data to fall outside the window, thus signaling an error condition. A similar conventional procedure designed to test the noise rejection capability of the storage device, injects noise into the device in order to monitor for data that may fall outside the window, thus signaling an error condition.
Another conventional form of such testing, as detailed in U.S. Pat. No. 5,654,841, injects a sinusoidal test signal of a predetermined magnitude and frequency into an incoming servo position error (SPE) signal in the servo loop. The SPE signal indicates the position of the head relative to the center of a track, whose identity is included in the prerecorded servo information. After the signal is injected, the gain in the servo loop is measured as a ratio of the magnitude of the incoming SPE (as a result of sampling and filtering the SPE prior to injection) over the magnitude of the modified SPE (as a result of the signal injection). An error condition is then recognized by any localized increase in gain over the frequency range. This error condition is visible as a result of the resonance in the disc drive structure induced by the injection of the test signal into the SPE. In a similar known method, errors in a data storage device can be found through the use of a frequency analyzer. The frequency analyzer injects energy of a selected frequency into the storage device and then evaluates the structure for gain and phase response in the energy range which would indicate a resonance. The resonant frequency is then used to determine if it is one of the xe2x80x9cmarkedxe2x80x9d frequencies common to a particular mechanical defect.
Although there is an abundant amount of prior art teaching error detection, there presently is a lack of ability to test the response of the firmware in light of any one of the unlimited number of error conditions (ie, servo errors, data field errors, etc.) that can occur. Unless there is a way to simulate these errors, it is not known how the firmware of the storage device will respond when such an error condition occurs.
Against this backdrop the present invention has been developed. The present invention is a means for invoking an error condition to observe the behavior of the error recovery system of the firmware. The software error recovery analysis tool, in accordance with the present invention, hereinafter called xe2x80x9cSERAT,xe2x80x9d provides a precise, predictable, repeatable, adjustable, user-friendly means for creating errors in any portion of the read data signal prior to the initiation of any error detection or correction functions. By providing precise disruptions in the read signal of a data storage device, an error event is inherently introduced on a user-specified recorded track of information. This error event can corrupt anywhere from several cells to the entire track. These controlled error events provide a means for observing the ability of the data storage device (DSD) to deal with specific error conditions which may occur in normal operation of the device. Such observations can reveal errors or omissions in the error recovery procedures of the DSD.
In the preferred embodiment, SERAT creates an error event by effectively canceling both channels (Rdx and Rdy) of the differential read signal by shorting both channels to DC common. The cancellation is administered through a probe which is specifically designed for each particular DSD. Any type of software offering a graphical and interactive environment for measurement and automation may implement the functional basis for the control of such error events. SERAT, in response to the customized routines initiated by the software, injects a disruption at a segment on the differential read signal corresponding to a location in the DSD specified by a user to be the placement of the error event. Precision of the duration of the error event (typically one nanosecond or less) is administered through a software-controlled combination of digital and analog timing circuits. This precise timing and control of the error event is one representative quality of the innovative aspects of SERAT.
Implementing the customized software routines with the graphical and interactive software, a user may create not only single error events, but also repeatable error events, multiple error events per track, exactly positioned error events, randomly positioned error events, and randomly-sized error events through simple, point and click controls of the graphical user interface. The application of the routines by the software provide for fixed, random, or sequential placement of error events on a specified number of consecutive rotations of the disc. Further, by repeating the error event on consecutive rotations, SERAT may provide a means for testing retry error procedures which are common to data storage equipment.